/**
 ******************************************************************************
 * @file			main.c
 * @author			ou_teki
 * @date			2024-0708
 ******************************************************************************
 */
//! https://gitee.com/im_moqi/mm32-f5333


#define __MAIN_C__

/* Files include */
#include "headfile.h"

/* Private variables ***************************************************************************************************/

/* Private typedef ****************************************************************************************************/

/* Private define *****************************************************************************************************/

/* Private macro ******************************************************************************************************/

/* Private variables **************************************************************************************************/
//char *ver = (char *)((uint32_t)Reset_Handler() + 4*6);

/* Private functions **************************************************************************************************/

void delay(uint32_t tick)
{
	uint32_t  i=0, j=0, k=0;
	for(i=0; i<tick; i++)
	{
		for(j=0; j<10000; j++)
		{
			//for(k=0; k<10000; k++)
			{
				__ASM(
						"NOP"
					);
			}
		}
	}
}

/***********************************************************************************************************************
  * @brief  This function is main entrance
  * @note   main
  * @param  none
  * @retval none
  *********************************************************************************************************************/
int main(void)
{

    // BSP_ClockInit();
    UartComInit();
    LedInit();
    // KeyInit();
    // BeepPwmInit();
    // AT24_IIC_Init();
    // ZD25_SPI_Init();
    BSP_Tim6Init();

	char version[17] = {0};
	GetVersion(version);
	
    LogPrintf("Hello, world!\r\n");
    LogPrintf("MM32F5333 version: %s\r\n", version);

    uint16_t data[2] = {0x01, 0x02};

    while (1)
    {
//         LED1_OFF();
//         LED2_ON();
//         LED3_OFF();
//         LED4_ON();
        // LogPrintf("LED\r\n");
        // LED1_OFF();
        // delay(1000);
        // LED1_ON();
        // delay(1000);

      if (1 == uart_com_flag)
      {
        //uint8_t cmd_index = GetCmdIndex(uart_com_data);
        switch (GetCmdIndex((char *)uart_com_data))
        {
            case LED1_ON:
                LogPrintf("cmd: len on\r\n");
            break;

            case LED1_OFF:
                LogPrintf("cmd: led off\r\n");
            break;

            case LED1_TOGGLE:
                LogPrintf("cmd: len toggle\r\n");
            break;

            default:
                LogPrintf("cmd: error\r\n");
            break;
        }
        uart_com_flag = 0;
        uart_com_data_len = 0;
      }


    }
}

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

/********************************************** (C) Copyright MindMotion **********************************************/

